The technical field of this disclosure pertains to multimedia communications networks and more particularly to TDM (Time Division Multiplexing) type synchronous networks and isochronous networks.
The term “synchronous networks” is used when the clocks of a network are strictly synchronized in phase and in frequency with a reference clock. For example, we may refer to SDH (Synchronous Digital Hierarchy) type telecommunications networks or audio/video home networks for large-scale consumption based on the interconnection of several IEEE Std 1394a-2000 type buses as defined by the IEEE1394.1-2004 standard (Standard for High Performance Serial Bus Bridges).
It must be noted that should there be a constant relative phase difference observed, the term used is then “mesochronous networks” although, loosely speaking, these two types of networks are also called synchronous networks.
A TDM (Time Division Multiplexing) type network for its part is a network used to convey several channels or a same communications medium (the term used is “channel aggregation”) by using time division multiplexing on the elementary samples of each of these channels. Thus, the time is divided into time slots of equal and fixed duration, successively intended for the different channels to convey an elementary sample. A TDM frame has one time slot per channel conveyed by the communications medium. The cycle is repeated with a new TDM frame comprising new elementary samples for each of the channels.
A synchronous TDM type networks therefore benefits from the features and properties of a TDM type network and a synchronous type network.
An isochronous network is a synchronous network which, like the IEEE Std 13948-2000 bus, is characterized by its capacity to transmit elementary samples having a different size per channel but being fixed in time at an appropriate frequency in order to obtain constant information bit rate. It can therefore be deemed to be the case that a synchronous TDM network is an isochronous network for which all the elementary samples have the same size and the same frequency of appearance in the communications medium.
An embodiment of the invention relates more particular to a synchronous network suited to the simultaneous presentation of either one piece of information on several terminals (1-to-N) type applications or to several pieces of synchronous information coming from several terminals addressed to a common terminal (N-to-1) type application.
An embodiment of the invention can be applied very particularly in a multi-camera capture system or in a distributed display system.
In order to obtain a simultaneous presentation of a multimedia stream in a network of terminals having wire and/or radio interfaces, the US patent US2004/0068588 describes a method for determining a delay to be applied to each of the interfaces connected to the multimedia stream rendering device.
The delay introduced by the use of a memory is determined as a function of the latency and end-to-end bandwidth characterizing the multimedia stream to be presented synchronously for each interface connected to the multimedia stream rendering device.
This solution calls for the presence of a memory for each interface connected to a device for rendering the multimedia stream enabling the introduction of a delay, a memory whose size varies with the differences of characteristics between the different communications networks but also with the architecture of the network. Now, in the presence of a network architecture that becomes complex, the size of the memory used to introduce the delay may prove to be insufficient or difficult to size. Furthermore, this method does not seek to minimize the comprehensive use of memory resources in the network. Thus, two interfaces each connected to a rendering device having a latency and end-to-end bandwidth characteristics that are identical for a multimedia stream must each apply a same delay.
Furthermore, this approach does not resolve the problem of the conveyance of several multimedia streams in order to present them synchronously to a common rendering device.
The patent EP1289211 describes a solution aimed at setting up end-to-end connections with a pre-determined value of latency by configuring the traversal time (latency) of the infrastructure apparatuses of the “bridge” type network, known as parametrizable devices. This solution meets the problem of the minimizing of the overall use of memory resources in the network but it has limits and provides no response to the problem of conveying several media streams in order to present them synchronously to a common rendering device.
It can be noted that the limits of this latter approach necessitate the setting up of a method for determining the topology of the network with discovery of the infrastructure apparatuses of the network supporting an embodiment of the invention. These infrastructure apparatuses known as parametrizable apparatuses have solely two communications ports.
Finally, the delays introduced by these infrastructure apparatuses called parametrizable are applied to all the traffic traversing these apparatuses without distinction. This therefore unnecessarily increases the latency of the traffic that does not necessitate the implementation of an embodiment of the invention and therefore prohibits a second parametrization for a second stream for which another synchronization would be necessary.
An embodiment of the invention described here below in the document therefore aims at resolving at least one of the unresolved problems of the prior art here above.
Thus, we shall describe a method known as latency balancing in a synchronous communications tree for N-to-1 type applications (for N sources to one destination, for example a multi-camera capture application) or a 1-to-N type applications (for one source towards N destinations, such as for example a distributed display application).
In order to make the present solution robust as regards the failure of a piece of equipment of the prior art controller type, this solution relies on the cooperation of the infrastructure apparatuses of the network which take part in the distribution of the streams or streams to be conveyed in the network.
Furthermore, an embodiment of the invention is aimed at supporting several applications of the disclosure for different communications trees on the same communications network.
An embodiment of the invention pertains to a method for balancing a latency of transmission of at least one data content in a communications tree defined in a synchronous communications network, the communications tree comprising a root node to which there is connected a junction terminal which is a convergence terminal in the context of a capture application and a divergence terminal in the context of a broadcast application. The communications tree furthermore comprises leaf nodes to which there are connected capture terminals in the context of a capture application and broadcast terminals in the context of a broadcast application, the root node and the leaf nodes being interconnected by intermediate nodes, the nodes being interconnected by links, wherein it comprises steps consisting in:                determining, for each node of the communications tree, a maximum value of latency associated with each path going from said node up to leaf nodes in a direction opposite to the junction terminal, and        applying to each link at a node, the link running from the node in the direction opposite to the junction terminal, a supplement of latency balancing that corresponds to a difference between the maximum value of latency of said each link and the maximum value of latency which is the greatest value from among said maximum values of latency determined.        
Thus, the balancing is distributed over several nodes of the network, providing all the flexibility needed to work iteratively, by thus distributing the processing load. In particular, it is possible to easily obtain changes in the topology of the communications tree, since each node can report a change of the latency time of a link which would have changed or again can report a modification of a data circuit.
From this point of view, a link is an entity constituted by a physical bond between two nodes and by circuits serving as output and input memory buffers. The adjusting of the latency therefore can be done either in the buffers or even distributed over both of them or else again done in a relay at an intermediate point of the link.
It will be noted that the term intermediate node is understood to mean a switch 200 (FIG. 2a) of the communications tree which is not the root node (i.e. the node to which the convergence or divergence terminal is connected) and which is not a leaf node.
It can be noted that the method can be applied equally well to broadcasting communications also called 1-to-N type communications as well as to N-to-1 type convergence communications also called N-to-1 type communications.
Thus, in a broadcasting mode, a piece of data captured (for example by a camera) at an instant T1 at the level of a source terminal will be available at a first destination terminal (connected to a leaf node) at the same point in time T2 at which it will be available at the level of a second destination node (connected to a leaf node).
Thus, in a convergence mode, a piece of data captured (for example by a first camera) at an instant T3 at the level of a first source terminal will be available at the level of the destination terminal (directly or indirectly connected to the root node) at the same instant T4 as another piece of data has been captured (for example by a second camera) at the instant T3 at a second source terminal.
Furthermore, in convergence mode, it is especially possible to collect sub-sets at intermediate nodes from among the total of the data streams coming from the terminals connected to the leaves (i.e. to the sources) since these latencies of sub-sets will have been balanced, thus providing for a time of synchronous presentation of these data streams in an intermediate node situated between the leaf nodes (to which the source terminals of the streams considered are connected) and the root node (convergence node).
It will be noted that the acquisition of the latency values for each node can be done following a request intended to set up a balanced tree or else it can be done cyclically, so as to then store the values received in return and thus be able to respond immediately to a balancing request.
The exchanges between nodes may be of the PULL type or of the PUSH type. In the former case, each node interrogates its neighbors on the leaf side (i.e. in the ones that are in the direction opposite to the root node) by a query asking to know their maximum value of latency and, in the latter case, each node spontaneously sends its maximum value of latency on the link to the neighboring node on the root side (i.e. towards the root node).
Preferably, the steps for determining a maximum value of latency and for applying a supplement of supplement of latency balancing are performed by successive nodes, in working back from the leaf nodes to the root node.
The nodes are thus activated in a cascade, thus preventing the duplication of queries.
In convergence node, it is by starting with the leaves and going back to the root node of the communications tree that a compensation already begins to be made, locally at an intermediate node considered, for the time-shift or time-lag between the streams injected into the communications tree by the leaf nodes. This furthermore makes it possible to distribute the load of each of the supplements of latency balancing among these different nodes of the tree.
According to one practical embodiment, the method comprises a preliminary step for sending a command to said leaf nodes, from a root node, for activating latency balancing of the communications tree.
Thus, each of the intermediate nodes can determine which of its links is directly or indirectly connected to the root node. Indeed, this link corresponds to the one by which the activation message reaches it.
In one mode of implementation, in order to perform the step of determining a maximum value of latency, the method comprises steps of, from each intermediate node:                sending a query (DELAY QUERY), on its links in a direction opposite to the convergence terminal or the divergence terminal, for obtaining said maximum value of latency;        sending a message comprising a maximum value of latency determined as a function of at least one response to said query or queries, said message being sent on the link from said node towards the convergence terminal or the divergence terminal.        
Thus, by sending simple query/response type messages, the nodes can determine from one node to the next the value of latencies applicable to each of the links of the communications tree.
In particular, it can be provided that the method, in order to perform the step of applying a supplement of latency balancing, will comprise a step which, for at least some of the links, will consist in applying the supplement of latency to a link output with respect to a direction of transmission of said content.
It must be noted that with respect to one direction of a stream, one link input corresponds to the output port of one of the nodes to which the link refers. Thus it is possible to use node architectures having available a reserve of memory solely on the output ports.
It can also be provided that the method, in order to perform the step of applying a supplement of latency balancing, will comprise a step, for at least certain of the links, of applying the supplement of latency to a link input with regard to a direction of transmission of said content or contents.
It must be noted that with respect to a stream direction, a link output corresponds to the input port of one of the nodes to which the link refers. Thus, it is possible to use architectures of nodes having available a memory reserve solely at the input ports.
Thus, the supplement of latency is applied all or in part to any one of the ends of the link. Certain nodes may thus require only little memory for this purpose.
Advantageously, in order to perform the step of applying a supplement of latency balancing, the method comprises preliminary steps which, for a considered node of each of said certain links, are steps of determining the direction of transmission of said content and, depending on the determined direction of transmission, of:                locally applying the supplement of latency balancing to said considered node, or        sending a command for application of the supplement of latency balancing intended for the node interconnected to said node considered by the link.        
Thus, an intermediate node having determined the supplement of latency to be applied to a given link may, according to the architecture of the node (having available a memory reserve solely at the input ports or solely at the output ports), decide to locally apply the supplement of latency or have it applied by the node with which it is connected by the given link.
In another embodiment, the disclosure pertains to a storage means, readable by computer, storing a computer program comprising a set of instructions executable by a computer to implement the above-mentioned method (in any one of its different embodiments).
An embodiment of the invention also pertains to a device constituting a communication node of a synchronous communications network designed to undergo a latency balancing of transmission of at least one data content in a communications tree defined in a synchronous communications network, the communications tree comprising a root node to which there is connected a junction terminal which is a convergence terminal in the context of a capture application and a divergence terminal in the context of a broadcast application, the communications tree furthermore comprising leaf nodes to which there are connected capture terminals in the context of a capture application and broadcast terminals in the context of a broadcast application, the root node and the leaf nodes being interconnected by intermediate nodes, the nodes being interconnected by links, wherein the communication node comprises:                means for determining a maximum value of latency associated with each path going from said node up to leaf nodes in a direction opposite to the junction terminal, and        means for applying to each link at a node, the link running from the node in the direction opposite to the junction terminal, a supplement of latency balancing that corresponds to a difference between the maximum value of latency of said each link and the maximum value of latency which is the greatest value from among said maximum values of latency determined.        